package com.tancire.member.mapper;

import java.util.List;
import com.tancire.member.domain.Member;
import org.apache.ibatis.annotations.Param;

/**
 * 会员管理Mapper接口
 *
 * @author tancire
 * @date 2024-05-20
 */
public interface MemberMapper {
    /**
     * 查询会员管理
     *
     * @param memberId 会员管理主键
     * @return 会员管理
     */
    Member selectMemberByMemberId(Long memberId);

    /**
     * 查询会员管理列表
     *
     * @param member 会员管理
     * @return 会员管理集合
     */
    List<Member> selectMemberList(Member member);

    /**
     * 新增会员管理
     *
     * @param member 会员管理
     * @return 结果
     */
    int insertMember(Member member);

    /**
     * 修改会员管理
     *
     * @param member 会员管理
     * @return 结果
     */
    int updateMember(Member member);

    /**
     * 删除会员管理
     *
     * @param memberId 会员管理主键
     * @return 结果
     */
    int deleteMemberByMemberId(Long memberId);

    /**
     * 批量删除会员管理
     *
     * @param memberIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteMemberByMemberIds(Long[] memberIds);

    /**
     * 根据微信openId查询会员账号信息
     *
     * @param openId
     * @return
     */
    Member selectMemberByOpenId(@Param("openId") String openId);

    /**
     * 根据账号查询会员信息
     *
     * @param username
     * @return
     */
    Member selectMemberByAccount(@Param("username") String username);

    /**
     * 根据账号名查询数量
     *
     * @param account
     * @return
     */
    int selectCountByAccount(@Param("account") String account);

    /**
     * 查询排行榜前20名
     *
     * @return
     */
    List<Member> selectMemberTopLevelList();

    /**
     * 根据IDS查询会员信息
     *
     * @param ids
     * @return
     */
    List<Member> selectMemberByIds(@Param("ids") List<Long> ids);
}
